They're unused.
event->key.state = message->key.state;
event->key.hardware_keycode = message->key.key;
gdk_event_set_scancode (event, message->key.key);
- event->key.length = 0;
gdk_event_set_device (event, gdk_seat_get_keyboard (seat));
node = _gdk_event_queue_append (display, event);
switch ((guint) event->any.type)
{
- case GDK_KEY_PRESS:
- case GDK_KEY_RELEASE:
- new_event->key.string = g_strdup (event->key.string);
- break;
-
case GDK_ENTER_NOTIFY:
case GDK_LEAVE_NOTIFY:
if (event->crossing.child_surface != NULL)
switch ((guint) event->any.type)
{
- case GDK_KEY_PRESS:
- case GDK_KEY_RELEASE:
- g_free (event->key.string);
- break;
-
case GDK_ENTER_NOTIFY:
case GDK_LEAVE_NOTIFY:
g_clear_object (&event->crossing.child_surface);
* @keyval: the key that was pressed or released. See the
* `gdk/gdkkeysyms.h` header file for a
* complete list of GDK key codes.
- * @length: the length of @string.
- * @string: a string containing an approximation of the text that
- * would result from this keypress. The only correct way to handle text
- * input of text is using input methods (see #GtkIMContext), so this
- * field is deprecated and should never be used.
- * (gdk_unicode_to_keyval() provides a non-deprecated way of getting
- * an approximate translation for a key.) The string is encoded in the
- * encoding of the current locale (Note: this for backwards compatibility:
- * strings in GTK+ and GDK are typically in UTF-8.) and NUL-terminated.
- * In some cases, the translation of the key code will be a single
- * NUL byte, in which case looking at @length is necessary to distinguish
- * it from the an empty translation.
* @hardware_keycode: the raw code of the key that was pressed or released.
* @group: the keyboard group.
* @is_modifier: a flag that indicates if @hardware_keycode is mapped to a
guint32 time;
guint state;
guint keyval;
- gint length;
- gchar *string;
guint16 hardware_keycode;
guint16 key_scancode;
guint8 group;
static gboolean keyboard_repeat (gpointer data);
-static void
-translate_keyboard_string (GdkEventKey *event)
-{
- gunichar c = 0;
- gchar buf[7];
-
- /* Fill in event->string crudely, since various programs
- * depend on it.
- */
- event->string = NULL;
-
- if (event->keyval != GDK_KEY_VoidSymbol)
- c = gdk_keyval_to_unicode (event->keyval);
-
- if (c)
- {
- gsize bytes_written;
- gint len;
-
- /* Apply the control key - Taken from Xlib */
- if (event->state & GDK_CONTROL_MASK)
- {
- if ((c >= '@' && c < '\177') || c == ' ')
- c &= 0x1F;
- else if (c == '2')
- {
- event->string = g_memdup ("\0\0", 2);
- event->length = 1;
- buf[0] = '\0';
- return;
- }
- else if (c >= '3' && c <= '7')
- c -= ('3' - '\033');
- else if (c == '8')
- c = '\177';
- else if (c == '/')
- c = '_' & 0x1F;
- }
-
- len = g_unichar_to_utf8 (c, buf);
- buf[len] = '\0';
-
- event->string = g_locale_from_utf8 (buf, len,
- NULL, &bytes_written,
- NULL);
- if (event->string)
- event->length = bytes_written;
- }
- else if (event->keyval == GDK_KEY_Escape)
- {
- event->length = 1;
- event->string = g_strdup ("\033");
- }
- else if (event->keyval == GDK_KEY_Return ||
- event->keyval == GDK_KEY_KP_Enter)
- {
- event->length = 1;
- event->string = g_strdup ("\r");
- }
-
- if (!event->string)
- {
- event->length = 0;
- event->string = g_strdup ("");
- }
-}
-
static GSettings *
get_keyboard_settings (GdkWaylandSeat *seat)
{
event->key.keyval = sym;
event->key.is_modifier = _gdk_wayland_keymap_key_is_modifier (keymap, key);
- translate_keyboard_string (&event->key);
-
_gdk_wayland_display_deliver_event (seat->display, event);
GDK_DISPLAY_NOTE (seat->display, EVENTS,
g_message ("keyboard %s event%s, code %d, sym %d, "
- "string %s, mods 0x%x",
+ "mods 0x%x",
(state ? "press" : "release"),
(from_key_repeat ? " (repeat)" : ""),
event->key.hardware_keycode, event->key.keyval,
- event->key.string, event->key.state));
+ event->key.state));
if (!xkb_keymap_key_repeats (xkb_keymap, key))
return;
event->key.is_modifier = gdk_x11_keymap_key_is_modifier (keymap, event->key.hardware_keycode);
- _gdk_x11_event_translate_keyboard_string (&event->key);
-
#ifdef G_ENABLE_DEBUG
if (GDK_DISPLAY_DEBUG_CHECK (display, EVENTS))
{
xevent->xkey.window,
event->key.keyval ? gdk_keyval_name (event->key.keyval) : "(none)",
event->key.keyval);
-
- if (event->key.length > 0)
- g_message ("\t\tlength: %4d string: \"%s\"",
- event->key.length, event->key.string);
}
#endif /* G_ENABLE_DEBUG */
return;
return return_val;
}
-void
-_gdk_x11_event_translate_keyboard_string (GdkEventKey *event)
-{
- gunichar c = 0;
- gchar buf[7];
-
- /* Fill in event->string crudely, since various programs
- * depend on it.
- */
- event->string = NULL;
-
- if (event->keyval != GDK_KEY_VoidSymbol)
- c = gdk_keyval_to_unicode (event->keyval);
-
- if (c)
- {
- gsize bytes_written;
- gint len;
-
- /* Apply the control key - Taken from Xlib
- */
- if (event->state & GDK_CONTROL_MASK)
- {
- if ((c >= '@' && c < '\177') || c == ' ') c &= 0x1F;
- else if (c == '2')
- {
- event->string = g_memdup ("\0\0", 2);
- event->length = 1;
- buf[0] = '\0';
- return;
- }
- else if (c >= '3' && c <= '7') c -= ('3' - '\033');
- else if (c == '8') c = '\177';
- else if (c == '/') c = '_' & 0x1F;
- }
-
- len = g_unichar_to_utf8 (c, buf);
- buf[len] = '\0';
-
- event->string = g_locale_from_utf8 (buf, len,
- NULL, &bytes_written,
- NULL);
- if (event->string)
- event->length = bytes_written;
- }
- else if (event->keyval == GDK_KEY_Escape)
- {
- event->length = 1;
- event->string = g_strdup ("\033");
- }
- else if (event->keyval == GDK_KEY_Return ||
- event->keyval == GDK_KEY_KP_Enter)
- {
- event->length = 1;
- event->string = g_strdup ("\r");
- }
-
- if (!event->string)
- {
- event->length = 0;
- event->string = g_strdup ("");
- }
-}
-
/* We only care about focus events that indicate that _this_
* surface (not a ancestor or child) got or lost the focus
*/
_gdk_x11_keymap_add_virt_mods (keymap, &state);
event->key.state |= state;
- _gdk_x11_event_translate_keyboard_string (&event->key);
-
if (ev->evtype == XI_KeyPress)
set_user_time (event);
gint n_axes);
#endif
-void _gdk_x11_event_translate_keyboard_string (GdkEventKey *event);
-
GdkAtom _gdk_x11_display_manager_atom_intern (GdkDisplayManager *manager,
const gchar *atom_name,
gboolean copy_name);